package com.glela.task.service;

import java.util.List;

import com.glela.task.domain.TaskOrderParams;
import com.glela.task.domain.TaskOrderStatus;
import com.glela.task.domain.TaskOrderType;
import com.glela.task.model.TaskOrder;

/**
 * 任务-订单
 * @author zls
 *
 */
public interface TaskOrderService {
	/**
	 * <dl>
	 * <dt>查询订单任务</dt>
	 * </dl>
	 * @param taskOrderParams
	 * @return List<TaskOrder>
	 * @author zls
	 * @date 2017年11月10日 下午4:21:49
	 */
	List<TaskOrder> queryAll(TaskOrderParams taskOrderParams);

	/**
	 * <dl>
	 * <dt>新增任务</dt>
	 * </dl>
	 * @param addTaskOrder
	 * @return boolean
	 * @author zls
	 * @date 2017年11月10日 下午3:44:10
	 */
	boolean addTask(TaskOrder addTaskOrder);

	/**
	 * <dl>
	 * <dt>更新任务状态</dt>
	 * <dd>根据当前状态nowStatus更新新状态</dd>
	 * </dl>
	 * @param id 任务id
	 * @param newStatus 新状态
	 * @param nowStatus 当前状态
	 * @param memo 描述信息
	 * @return boolean true 更新成功；false 无记录被更新
	 * @author zls
	 * @date 2017年11月10日 下午3:44:22
	 */
	boolean modifStatus(long id, TaskOrderStatus newStatus, int nowStatus, String memo);

	/**
	 * <dl>
	 * <dt>更新任务状态</dt>
	 * <dd>根据当前状态nowStatus更新新状态</dd>
	 * </dl>
	 * @param oObjId 订单id（父订单id主键）
	 * @param taskOrderType 任务类型
	 * @param newStatus 新状态
	 * @param nowStatus 当前状态
	 * @param memo 描述信息
	 * @return boolean true 更新成功；false 无记录被更新
	 * @author zls
	 * @date 2017年11月10日 下午3:48:27
	 */
	boolean modifStatus(long oObjId, TaskOrderType taskOrderType, TaskOrderStatus newStatus, int nowStatus, String memo);
}
